package com.weixing.mall.provider.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.weixing.mall.provider.model.domain.Order;
import com.weixing.mall.provider.model.vo.report.delivery.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author jzy
 * @date 2020/5/30
 */
public interface DayReportDeliveryMapper extends BaseMapper<Order> {
    /**
     * 01 发货部报表--发货员发货数据报表
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataVo> shipperSendData(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 01 发货部报表--发货员发货数据报表
     * @param page
     * @return
     */
    IPage<DeliveryShipperSendDataVo> shipperSendData2(Page page, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("monthTime") String monthTime, @Param("shipperId") Long shipperId, @Param("orderType") Integer orderType);

    /**
     * 01 发货部报表--发货员发货数据报表合计
     * @param page
     * @param var2
     * @return
     */
    DeliveryShipperSendDataVo shipperSendDataTotal(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 01 发货部报表--发货员发货数据报表合计
     * @param page
     * @return
     */
    DeliveryShipperSendDataVo shipperSendDataTotal2(Page page, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("monthTime") String monthTime, @Param("shipperId") Long shipperId, @Param("orderType") Integer orderType);
    /**
     * 01 发货部报表--发货员发货数据报表-详细数据
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataDetailVo> shipperSendDataDetail(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 01 发货部报表--发货员发货数据报表-详细数据2
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataDetailVo> shipperSendDataDetail2(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 02 发货部报表--发货员发货数据统计
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataStatisticsVo> shipperSendDataStatistics(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 02 发货部报表--发货员发货数据统计-详细数据
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataDetailVo> shipperSendDataStatisticsDetail(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 04 发货部报表--外采报表
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperOutVo> shipperOutReport(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 01 发货部报表--发货员发货数据报表-详细数据
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperSendDataDetailVo> shipperPerformanceDetail(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 07 发货部报表--发货部发货整体报表
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryWholeReportVo> wholeReport(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 03发货部-发货员换码采购报表
     * @param var2
     * @return
     */
    List<DeliveryShipperExchangeReportVo> shipperExchangeReport(@Param("ew") Wrapper<?> var2);
    /**
     * 06发货部-留存发货数据报表
     * @param var2
     * @return
     */
    List<DeliveryShipperRemainReportVo> shipperRemainReport(@Param("ew") Wrapper<?> var2);


    /**
     * 发货员业绩
     * @param page
     * @param var2
     * @return
     */
    IPage<DeliveryShipperPerformanceVo> shipperPerformanceMaps(Page page, @Param("ew") Wrapper<?> var2);
}
